Peer-to-peer file download system for IMS network

ABSTRACT

A server application is interconnected with a number of client/peer terminals, as part of an IMS network. For peer-to-peer transfer of a selected data file, a client terminal establishes and accesses a secure account on the server application. From the server application, the client terminal obtains the network locations of one or more peer terminals having sections/pieces of the data file stored thereon. The client terminal contacts the peer terminals for obtaining the data file sections there from over the IMS network. The client terminal and/or peer terminals transmit accounting data to the server application through secure accounts. The accounting data relates to the amount of data transferred and/or to the data transfer rate, and may be used for billing purposes.

This application is entitled to the benefit of and claims foreignpriority under 35 U.S.C. § 119 from Chinese Patent Application No.200610143983.X, filed Nov. 7, 2006, the disclosure of which is herebyincorporated by reference.

FIELD OF THE INVENTION

The present invention relates to communications and, more particularly,to file transfer services in an IMS-based network or other communicationnetwork.

BACKGROUND OF THE INVENTION

The IP Multimedia Subsystem (“IMS”) is a standardized “next generation”networking architecture for providing multimedia services inmobile/wireless and fixed/wire-line communication networks. The IMS usesthe Internet protocol (IP) for packet-data communications generally, andvoice over IP (VoIP) for voice communications, based on a 3GPP/3GPP2standardized implementation of SIP (session initiation protocol). (SIPis a signaling protocol used for establishing sessions, such as atwo-way telephone call or multi-party phone conference, in an IPnetwork.) The IMS works with any packet switched network, both wire-linebased and wireless, such as GPRS, UMTS, CDMA2000, and WiMAX. Legacycircuit-switched phone systems and similar networks (e.g., POTS, GSM)are supported through gateways. The IMS includes session control,connection control, and an application services framework along withsubscriber and services data. It enables the use of new converged voiceand data services, while facilitating the interoperability of theseconverged services between subscribers.

An IMS-based network 10 is shown in simplified form in FIG. 1. The IMScontrol architecture includes a home subscriber server (“HSS”) 12 and acall session control function (“CSCF”) 14, and may generally be dividedinto a services/application layer 16 a, an IMS layer 16 b, and atransport layer 16 c. The HSS 12 is the central repository of allsubscriber-specific authorizations and service profiles and preferences.The HSS 12 integrates several functions/elements, some of which mayexist already (for example, in the home location register of wirelessnetworks), including subscriber/user profile database, subscriberservice permissions, authentication and authorization, subscriberpreference settings, mobile authentication server, and the like. An SLF18 (subscriber location function) is needed when multiple HSS's areused. The CSCF 14 carries out the primary SIP signaling functions in thenetwork. The CSCF 14 includes several types of SIP servers, including aproxy-CSCF server (the first point of contact for device and controlsauthentication), an interrogating-CSCF server (the entry point of allSIP messages), and a serving-CSCF server, which manages session controlfunctions. Additionally, application servers 20 host and executeservices, and interface with the CSCF 14 using SIP. This allows thirdparty providers to easily integrate and deploy their value addedservices on the IMS infrastructure. Examples of services include callerID related services, call waiting, call holding, push to talk,conference call servers, voicemail, instant messaging, call blocking,and call forwarding. A circuit-switched (“CS”) network gateway 22interfaces the IMS 10 with circuit-switched networks 24 such as a publicswitched telephone network (“PSTN”). The gateway 22 may include a BGCF(breakout gateway control function), which is an SIP server thatincludes routing functionality based on telephone numbers, an SGW(signaling gateway) that interfaces with the signaling plane of thenetwork 24, an MGCF (media gateway controller function) for call controlprotocol conversion, and an MGW (media gateway) that interfaces with themedia plane of the circuit-switched network 24. An MRF 26 (mediaresource function) may be provided as a media source in the network,e.g., for multimedia conferencing, text-to-speech conversation andspeech recognition, and real-time transcoding of multimedia data, e.g.,conversion between different codecs.

At the transport layer 16 c, the IMS layer 16 b is connected to a corebroadband IP network 28, possibly through the MRF 26 and/or an IMSgateway 30. The IMS gateway 30 may include an IMS application layergateway 32 (“IMS-ALG”) and a translation gateway 34 (“TrGW”) forfacilitating communications with networks using different versions ofthe Internet protocol, e.g., IPv4 and IPv6. The core IP network 28 isalso connected to one or more external IP packet data networks 36 (“IPPDN”), e.g., the Internet, and to other networks such as a DSL or otherwire-line network 38, wireless local area networks (“WLAN”) 40, andwireless networks 42. Typically, one or more intermediate networkelements are used for facilitating these connections, such as a WLANaccess gateway (“WAG”) and/or WLAN packet data gateway (“PDG”) 44, aserving GPRS support node (“SGSN”) 46 and gateway GPRS service node(“GGSN”) 48, and a digital subscriber line access multiplexer (“DSLAM”)and broadband access server (“BAS”) 50. The SGSN 46 is responsible formobility management and IP packet session management. It routes userpacket traffic from the radio network 42 to the appropriate GGSN 48,providing access to external packet data networks, in this case the corenetwork 28. The DSLAM 50 is a network device, usually located at atelephone company central office, or within a neighborhood serving areainterface as part of a digital loop carrier, that receives signals frommultiple customer DSL connections and aggregates the signals on ahigh-speed backbone line using multiplexing techniques. In this case,the DSLAM 50 connects the DSL network 38 with the core IP network 28.

The networks 38, 40, 42 may be functionally/logically connected to theCSCF 14 through various control/functional elements. For example, theIMS system may include a policy decision function (“PDF”) 52, whichenables the access network to be managed using dynamic policies.Additional functional elements 54 (grouped together for simplicity ofillustration) may include a service policy decision function (“SPDF”),an access-resource and admission control function (“A-RACF”), and anetwork attachment subsystem (“NASS”). The SPDF, for example, makespolicy decisions using policy rules and forwards session and mediarelated information, obtained from an application function, to theA-RACF for admission control purposes. The A-RACF is a functionalelement that performs resource reservation admission control and networkpolicy assembly functions. For simplicity of illustration, someintermediate network elements such as access gateways and server nodesare not shown. Further explanation regarding the operation of an IMSnetwork is available in the literature, and is known to those skilled inthe art.

At the user level, access terminals 56 a, 56 b provide a means for usersto communicate with one another over the network(s). Each terminal is anelectronic device with hardware and/or software-based functionality forcommunicating over a network, and typically including user input/outputmeans such as a keyboard and display. Examples include computerterminals, as well as wireless units such as mobile phones, wirelessPDA's, wireless devices with high-speed data transfer capabilities, suchas those compliant with “3-G” or “4-G” standards, “WiFi”-equippedcomputer terminals, and the like. When one terminal 56 a initiatescommunication with another terminal 56 b, the network automaticallycarries out various signaling procedures, according to its communicationprotocols, to open a communication channel between the two terminals.

In addition to transferring data for voice communication purposes, e.g.,VoIP data packets, IMS networks are increasingly used to transfer largedata files from one terminal to another. For example, users may desireto obtain electronic music files, video clips, and even full-lengthmovies over the IMS network 10, in lieu of obtaining these materialsfrom conventional sources such as “brick-and-mortar” stores. For thispurpose, with reference to FIG. 2, the IMS network 10 may be configuredfor file downloading. As indicated, a number of terminals 56 a-56 e(sometimes referred to as “client terminals”) are connected to thenetwork 10 in a standard manner. A server terminal 58 is also connectedto the network 10 in a standard manner. For example, the server terminal58 may be one of the IMS application servers 20 described above. Theserver terminal 58 includes a database and/or mass storage 60 such as ahard disk or disk array. The database 60 includes a number of data files62 a-62 c. In operation, a client terminal 56 a contacts the serverterminal 58 over the network 10, in a standard manner, for obtaining aselected data file 62 a. For example, the server terminal 58 may be adesignated server terminal for file downloads, with the client terminalsbeing informed of the server terminal address by way of an Internetwebsite/index, directory, pre-programmed information, or the like. Afterone or more optional administrative functions (e.g., requiring theclient terminal to provide electronic payment for the file), therequested file 62 a is transferred over the network 10 to the clientterminal 56 a, as indicated by the arrow labeled “A.”

While the traditional server-client configuration shown in FIG. 2 iseffective for file downloads in an IMS network at a basic level, thereis no way for the service provider to identify file download-relatedtraffic. That is, file download data, even if it occupies substantialbandwidth, is viewed like any other data. Thus, the service providercannot manage download traffic specifically, and there is no way to billaccording to data traffic type. Instead, billing is based on trafficvolume only, as with other data. Additionally, the downloadsystem/feature is dependent on the server for operation. If the server'sresources are overtaxed, file transfer times may suffer, which mayrequire that the server be outfitted with additional storage,processing, and bandwidth resources, or that more than one serverterminal be provided for the file download system. Similarly, if theserver fails, the entire file download system fails.

SUMMARY OF THE INVENTION

The present invention relates to a system and method for peer-to-peerfile transfer or download in an IMS (IP Multimedia Subsystem) or othernetwork. In the system, data files (or portions thereof) are transferredbetween peer terminals, instead of from a central server terminal,reducing the possibility of service interruptions due to server failureor overloading. Additionally, the system is accessed through secureaccounts that require user authentication for downloading data files,thereby forming a network domain with trusted users who can be requiredto pay for file transfer/download services. Accounting data relating tofile transfer may also be generated through the secure accounts,allowing the system to specifically track peer-to-peer data traffic inthe IMS network, e.g., for billing purposes.

In one embodiment, the system includes one or more server applicationsand a plurality of client/peer terminals, all of which communicate overthe IMS network. By “terminal,” it is meant an electronic device capableof communicating over a network. The server application is anetwork-connected, software- and/or hardware-based module (e.g., aserver terminal) configured for carrying out one or more peer-to-peerfile transfer management functions of the system. In operation, fordownloading a selected data file, a client terminal accesses the serverapplication(s) through a secure account. Upon request from the clientterminal, the server application transmits the network location of thedata file to the client terminal. By “network location,” it is meant theaddress or other location of the data file in the IMS network, a peerterminal having the data file stored thereon, or the like. The clientterminal then obtains the data file based on the network location, e.g.,from a peer terminal.

In another embodiment, for peer-to-peer file transfer, a number of datafile portions or sections are distributed among the peer terminals.(Together, the data file portions constitute a complete data file, suchas a data file containing multimedia content, e.g., a song or video.)The server application transmits the network locations of the data fileportions to the client terminal, for transfer of the data file portionsfrom the peer terminals to the client terminal over the IMS network.

In another embodiment, accounting data is generated by the clientterminal and/or the peer terminals and transmitted to the serverapplication. The accounting data relates to the transfer of the datafile portions from the peer terminals to the client terminal, and may beused for tracking peer-to-peer file transfer traffic. For example, theaccounting data may include the rate at which the data file portionswere transferred over the IMS network, and/or the amount of data in thedata file portions. The accounting data may be automatically securelygenerated and transmitted during or subsequent to when the data fileportions are obtained. By “automatically,” it is meant without userinput or initiation, and by “securely” it is meant without thepossibility of user intervention or modification, including possiblesecure transmission over the IMS network. For this purpose, theclient/peer terminals may be provided with a client module (e.g., asoftware- and/or hardware-based application or program) thatcoordinates, from the client terminal end, (i) communication with theserver application, (ii) peer-to-peer file transfer, and (iii)generating and transmitting the accounting data.

In another embodiment, the accounting data is used by the serverapplication for generating billing data, e.g., based on the datatransfer rate and/or data transfer volume. By “billing data,” it ismeant information/data relating to monetary or similar charges (e.g.,credits or debits) applied against a user or user account. Typically,users who obtain a file or file portion from a peer terminal are chargeda fee for the file transfer. The peer terminal that transmits the filemay be given a credit for transmitting the file.

In another embodiment, the establishment of a secure account with theserver application is required for using the system for peer-to-peerfile transfer over the IMS network. By “secure account,” it is meant anaccount (e.g., grouping of related data organized under an account nameor other identifier), the access of which is restricted based on userauthentication (e.g., account identifier and password protection) andpossibly other security features. After establishing an account, forobtaining a data file the client terminal accesses the account on theserver application. Subsequently, the client terminal accesses adatabase on the server for obtaining an information file from theserver. The information file is associated with the data file, and mayinclude information relating to the data file, e.g., informationdescribing the file and/or information relating to where the file (orportions thereof) may be obtained.

In another embodiment, the server applications include a server terminaland a tracker module. The server terminal may be a computer terminalhousing the accounts, database, and information files. The trackermodule is a network-connected software- and/or hardware-basedapplication or program, acting as an agent of the server terminal, forcarrying out certain communication and other functions of the filetransfer/download system. For example, the information file may includea network address or other location of the tracker module. The clientterminal accesses the tracker module at the provided location, andobtains the location of the data file from the tracker module, or therespective locations of data file portions if the data file is dividedinto different portions stored on different peer terminals. Typically,the tracker module will have the most up-to-date information regardingthe location of each piece/portion of the data file.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be better understood from reading thefollowing description of non-limiting embodiments, with reference to theattached drawings, wherein below:

FIG. 1 is a schematic view of an IP Multimedia Subsystem (IMS) network;

FIG. 2 is a schematic view of a file transfer/download system accordingto the prior art;

FIG. 3 is a schematic view of a file download system according to anembodiment of the present invention;

FIG. 4 is a schematic view of an additional embodiment of the filedownload system;

FIG. 5 is a signaling diagram of an additional embodiment of the filedownload system; and

FIGS. 6A and 6B are flow charts showing operation of an embodiment ofthe file download system.

DETAILED DESCRIPTION

With reference to FIGS. 3-6B, a peer-to-peer file download system 70includes a server terminal 72 and a number of client or peer terminals74 a-74 c interconnected by an IMS (IP Media Subsystem) network 10. Forone of the client terminals 74 a to obtain a data file 78 over thesystem 70, the client terminal 74 a accesses the server terminal 72through a pre-established account 80 a. Typically, each client terminal74 a-74 c will have a secure account 80 a-80 c on the server, with theestablishment of an account being required for using the system 70. Theclient terminal 74 a obtains an information file 82 d associated withthe data file 78, which is one of a plurality of information files 82a-82 d on the server, one for each data file available for download. Theinformation file 82 d contains the network address or other location 84of a tracker module 86. The client terminal 74 a accesses the trackermodule 86 to obtain the network locations 88 a, 88 b (see FIG. 5) of oneor more of the terminals 74 b, 74 c that have the data file 78 storedthereon. The client terminal 74 a selects and contacts one of theseterminals 74 b for obtaining the data file 78, that is, after beingcontacted by the terminal 74 a the terminal 74 b transmits the data file78 to the terminal 74 a over the IMS network 10. The client terminal 74a securely transmits accounting data 90, relating to the amount of datatransferred over the network 10, to the tracker module 86, whichforwards it to the server 72 for billing purposes. The accounting data90 may also contain an indication that the file has been obtained at theclient terminal 74 a and is available for download from the terminal 74a by other terminals.

With reference to FIG. 4, the system 70 may be configured in a mannerused in certain peer-to-peer networks where data files 78 fordownloading are divided into a number of pieces or sections 92 a-92 d,each about the same size, which are distributed among a number of peerterminals 74 b-74 d. Here, the client terminal 74 a obtains aninformation file 82 associated with a selected data file 78 from theserver terminal 72. (Typically, there will be one information file foreach data file available for download over the system.) The informationfile 82 contains the network address or other location 84 of a trackermodule 86. The client terminal 74 a accesses the tracker module 86 toobtain the network locations 88 a, 88 b of the terminals 74 b-74 d thathave the data file sections 92 a-92 d stored thereon. (Alternatively,the locations may be contained in the information file 82 as a list 94of data file portion locations.) If more than one terminal has the samedata file section, the client terminal 74 a chooses among the availablechoices. Based on the locations, the client terminal 74 a obtains thesections 92 a-92 d of the data file 78 from the terminals 74 b-74 d, ina peer-to-peer manner. Once all the data file sections/portions areobtained, the data file sections 92 a-92 d are verified and re-assembledinto the data file 78 according to hash information/data 96 madeavailable to the client terminal 74 a. The hash data is data used forverifying the data file sections 92 a-92 d, for reassembling the datafile portions 92 a-92 d into a file 78, and/or for classifying the datafile portions 92 a-92 d for purposes of quick and efficient databasestorage and retrieval. The hash data 96 may be obtained from theinformation file 82 associated with the data file 78. One or more of theterminals 74 a-74 d will also typically transmit accounting data 90,which may also include an indication of which data file sections 92 a-92d have finished downloading and are ready to be downloaded by otherterminals.

As noted, the system 70 will typically be implemented in conjunctionwith an IMS network 10, an example of which is described above. Theterminals 72, 74 a-74 d are electronic devices capable of communicatingwith one another over the network 10, and may include, for example,computer terminals, wire-line connected communication devices such asconventional telephones and enhanced/multimedia-capable telephones,and/or wireless units such as mobile phones, wireless PDA's, wirelessdevices with high-speed data transfer capabilities, such as thosecompliant with “3-G” or “4-G” standards, “WiFi”-equipped computerterminals, and the like. The terminals 72, 74 a-74 d communicate withone another over the network 10 in a standard manner, depending on theparticular configuration of the IMS network 10, the particular protocolsused for communicating over the network 10, and the types of terminalsused for accessing the network. In the case of computer terminals and anIMS network, one terminal (e.g., a client terminal) sends a request fordata to another terminal (e.g., a server terminal), and data from theserver terminal is transferred back to the client terminal in packetform. For example, for accessing a website on the Internet, a user mayenter a URI (uniform resource identifier)/URL (uniform resource locator)or IP address of the website into a web browser software program runningon the user's computer terminal, e.g., Microsoft Internet Explorer™. TheURL is a string of characters conforming to a standardized format, whichrefers to a resource on the Internet (such as the home page of thewebsite) by its location, and which may specify the protocol to use tocommunicate, the host/server to communicate with, the networkcommunication port on the server to connect to, and the path to theresource on the server (for example, its file name). Once the URL isentered, the server terminal is contacted and, if available, the serverterminal transmits requested data back to the user's terminal, accordingto the particular URL. For example, if the URL corresponds to a websitehome page, data corresponding to the home page (typically in HTMLformat), as stored on the server, is transmitted back to the user'sterminal. The data is translated/decoded by the web browser to recreatethe webpage in graphical form on the user terminal's display.

The server terminal 72 is a standard server-configured terminal (orgrouping of terminals) having communication means for communicating overthe network, e.g., one or more standard network interface cards/modules,modems, or the like. The server terminal 72 also includes mass storageor other memory, which may be organized into one or more databases 98for storing the accounts 80 a-80 c and information files 82 a-82 d.Typically, the server terminal 72 will also include an interface 100 forusers to access the server 72 (from the client terminals 74 a-74 d) toestablish accounts, initiate file downloads, and the like. For example,the interface 100 may be an Internet website implemented in a standardmanner as well known in the art, e.g., HTML code.

To establish an account 80 a on the server for peer-to-peer filetransfer, a user at a client terminal 74 a accesses the interface 100.For example, if the interface 100 is an Internet website or the like,the user would activate a web browser program on the client terminal 74a and enter a URL of the interface 100 into the web browser. Havingaccessed the interface 100, the user is provided with options such as“establish new account” and “access existing account.” The user is alsoprovided with information about the system 70, including billing optionsand rates. If the “establish new account” option is selected, the useris prompted to enter personal information and whatever other informationis required for establishing the account, e.g., name, billing address,e-mail address, payment means such as bank account debit or credit card,and security information such as user name and password. Thisinformation is stored in a standard manner as one or more associatedfiles in the database 98, as the user's account 80 a. To subsequentlyaccess the account 80 a, the user accesses the interface 100, selectsthe “access existing account” function (or the like), and enters userauthentication information such as account name, password, and/or othersecurity information.

The server terminal 72 also includes the information files 82 a-82 dstored in the database 98, or otherwise accessible to the serverterminal 72. The information files 82 a-82 d each correspond to adifferent data file 78 available for download/transfer on the system 70.(In other words, each data file 78 has a corresponding information file82 a-82 d stored on the server 72.) Each information file 82 a-82 dincludes the network address or other location 84 of a tracker module86, e.g., a URL or IP address of the tracker module for accessing thetracker module over the IMS network 10. The tracker module 86, asfurther described below, may be general purpose in nature, e.g., thetracker module is used in conjunction with more than one data file 78,or it may be individually dedicated or assigned to the data file 78. Theinformation files 82 a-82 d further include information 102 about theirrespective associated data files 78, such as file name, file type, filesize, subject matter and content summary, and billing information suchas rates for obtaining the file, if applicable. For example, in the caseof a song or music file, the file information 102 could include the filename, the name of the song, the album with which the song is usuallyassociated, the artist, music genre, file size, file type, e.g., MP3,and the cost for downloading the music file. The information files mayalso contain hash data 96 relating to the data file 78, or to each datafile section 92 a-92 d if the data file is divided into sections forpeer-to-peer transfer.

As an initial step in downloading a data file 78, a user directs theclient terminal 74 a to access the server terminal 72 through theinterface 100, as at Step 200 in FIG. 5, selects the “access existingaccount” option or the like, and enters the information required foraccessing the user's account 80 a. Subsequently, the user selects anoption for selecting and/or downloading data files. Selecting a datafile 78 may involve searching for the data file using key words or thelike, searching for categories or groups of files, entering a file nameor other identifier, if known, or browsing through a list or selectionof available data files, possibly broken down by category, type, orgenre. As such, the interface 100 may be provided with functionality forthis purpose, such as a standard website search function, various linkedweb pages for browsing, one or more indices, or the like. Once aparticular data file 78 is selected, the user selects a “download”function or the like, and may be asked to approve the billing rate orfee for downloading the file. Then, at Step 202 the information file 82a associated with the selected data file 78 is transferred from theserver terminal 72 to the client terminal 74 a over the network 10.

The information file 82 a is used for purposes of contacting andcommunicating with the tracker module 86 identified in the informationfile 82 a. For this purpose, the client terminal 74 a will typically beprovided with a client module 104. The client module 104 is a hardware,hardware/software, or software application/program running on the clientterminal 74 a and configured to communicate over the network 10 in astandard manner, e.g., the client module 104 accesses the clientterminal's network communication means (network interface card, modem,etc.) to send and receive messages and other data over the network 10.The client module 104 may be a utility-like software program operatingin the “background” of the client terminal user interface or operatingsystem, and/or it may provide user-accessible functionality such asdisplaying download status, download history, and the like. It may alsofunction as a client terminal-based interface for accessing the serverterminal 72. Typically, the client module 104 will be downloaded fromthe server 72 when a user first establishes an account. The clientmodule 104 is then installed onto the client terminal in a standardmanner. Downloading and installing the client module may be required forusing the system 70. Alternatively, the client module may be “builtinto” a client terminal. For example, in the case of a wireless unit,the client module could be provided as one of the standard availablefunctions on the wireless unit, with the system 70 being operated by thewireless server provider of the wireless unit or a designated thirdparty.

Once the information file 82 a is received at the client terminal 74 a,at Step 204 the client module 104 initiates communication with thetracker module 86 at the tracker module address/location 84 provided inthe information file 82 a. In particular, the client module 104transmits a data file identifier 106 to the tracker module 86 and thetracker module responds with a peer list 108 of which terminals have thedata file 78 or data file sections 92 a-92 d. The data file identifier106 uniquely identifies the selected data file 78, and will typically bepart of the data file information 102 in the information file 82 a. Forexample, the data file identifier may be the file name of the data file,a serial or index number of the data file, or the like. In some systems,the client terminal 74 a may also transmit contact information 110 tothe tracker module. The client terminal contact information 110 includeswhatever information is required for the tracker module 86 tocommunicate with the client terminal 74 a, such as the network addressof the client terminal (URL or IP address) and/or the communication portto which the client terminal is listening.

The tracker module 86 is a network-connected software- and/orhardware-based program/application, acting as an agent of the serverterminal, for carrying out certain communication and other functions ofthe system 70. For example, the tracker module 86 may be provided forfacilitating peer-to-peer contact for peer-to-peer data file transfer,for collecting accounting data 90 for billing purposes, and/or fortracking which terminals have obtained which data files (or data filesections 92 a-92 d) over the system. The tracker module 86 implements asimple communication protocol layered on top of HTTP (that is,implemented to operate in conjunction with the communication protocol inplace on the network, such as HTTP) in which a client terminal sends thefile identifier 106, and the tracker module responds with the peer list108 containing the network locations/addresses 88 a, 88 b of client/peerterminals 74 b, 74 c having the selected data file 78 or, as the casemay be, sections 92 a-92 d of the selected data file 78. The terminalsidentified in the peer list 108 may have previously downloaded (or be inthe process of downloading) the selected data file 78 (or data filesection) over the system 70, with the server terminal 72 and/or trackingmodule 86 having tracked information to that effect for subsequentpeer-to-peer downloads initiated by other client terminals. (In otherwords, when a client terminal downloads a file or file section over thesystem, the server may be configured to note that the client terminalnow has the file or file section available for peer-to-peer download,including storing the client terminal's network address for laterproviding to client terminals desiring to obtain the data file or filesection.) Alternatively, the data file may originate with one of theidentified peer terminals 74 b, 74 c, with that identified peer terminalhaving notified the server terminal 72 (e.g., from the client module,and/or by accessing the interface 100) that the data file is availablefor peer-to-peer transfer. In this case, measures may be put in place atthe server terminal 72 for safeguarding copyright protected files.

As noted, there may be one tracker module/application 86 used for allpeer-to-peer transactions, or, since transaction volume may require morethan one tracker module, there may be a plurality of tracker modules 86that are assigned to transactions as needed. Alternatively, there may bea tracker module 86 associated with each data file 78, with the trackermodule being dedicated for transactions involving that data file. Insuch a case, it would not be necessary for a client terminal to transmitthe file identifier 106 to the tracker module. Instead, the data filefor downloading would be implied by the client terminal having contactedthe particular tracker module. The tracker module(s) 86 may be stored onthe server terminal 72 or on another network-connected terminal.

When the tracker module 86 receives the identifier 106 of a selecteddata file 78 and/or client module contact information 110 from a clientterminal 74 a, the tracker module 86 responds by sending a peer list 108to the client terminal 74 a, as at Step 206. The peer list 108, asnoted, contains a list of the network addresses/locations 88 a, 88 b ofone or more peer terminals having the selected data file 78 or data filesections 92 a-92 d. These may be all or some subset of the terminalshaving the selected data file 78 or file sections 92 a-92 d on thesystem 70, or only those terminals currently in active communicationwith the network. Subsequently, the client module 104 (running on theclient terminal 74 a) selects one of the listed peer terminals ifdownloading the complete file 78, or one or more of the peer terminalsif downloading multiple file sections 92 a-92 d. The selection maysimply be the first active terminal listed in the peer list, or theactive peer terminal “closest” to the client terminal 74 a on thenetwork 10. Other selection criteria are possible. Peer-to-peer filetransfer commences once a peer terminal has been selected, e.g., peerterminal 74 b. In particular, at Step 208 the client module 104initiates communication with the selected peer terminal 74 b over thenetwork 10 at the location/address 88 a of the peer terminal 74 bprovided in the peer list 108. For example, this may includetransmitting a peer-to-peer file request message 112 to the peerterminal 74 b. In response, at Step 210 the client module in place onthe selected peer terminal 74 b causes the selected data file 78 (ordata file section 92 a), stored on the peer terminal 74 b, to betransmitted to the client terminal 74 a in a standard manner. The datafile 78 (or data file section 92 a) is received at the client terminal74 a and stored for retrieval and subsequent use. If the data file 78 isobtained as a plurality of data file sections 92 a-92 d, this process isrepeated for other peer terminals until all the sections are obtained.

During or subsequent to file or file section transfer, and at leastperiodically, one or both of the client modules 104 in place on theselected peer terminal 74 b and client terminal 74 a transfersaccounting data 90 to the tracker module 86 (Step 212). The accountingdata 90 may include data 114 relating to data transfer rates of thetransferred file 78, data 116 relating to the volume of datatransferred, and data 118 a, 118 b identifying the client terminal 74 a,peer terminal 74 b, and/or the accounts 80 a, 80 b associated with theseterminals. Typically, the transfer rates will be used for statisticspurposes, and the data volumes will be used for traffic recording forbilling purposes, e.g., billing may be based on the amount of datatransferred as opposed to the rate of transfer. Alternatively, users mayselect a burst transfer rate, which would be billed at a higher rate, orthe accounting data may simply indicate that a file has beensuccessfully transferred, if billing is on a per-file basis. Accountingdata may be generated and/or used in terms of both upload and downloadvolumes, the latter referring to data received at the requesting clientterminal 74 a and the former referring to data transferred by the peerterminal 74 b. Upload volumes may be used as a basis for billing creditsfor peer terminals, e.g., peer terminals may, in effect, be paid orcredited a small amount for acting as data sources in the system 70,thereby providing an incentive for users of peer terminals to consent tosubsequent file transfer to other peer terminals. Typically, theaccounting data 90 will be transmitted to the tracker module and/orserver terminal in a secure manner such as symmetric encryption, forensuring that the accounting data is not modified by the user of theclient terminal 74 a. As should be appreciated, in this manner thegeneration and transmission of accounting data is performedautomatically and without the possibility of user intervention, with useof the client module (and compartmentalized/secure generation ofaccounting data) being a prerequisite for using the system forpeer-to-peer file transfer. Additionally, because each peer user isrequired to establish a secure account and to use the client module, asecure/trusted peer-to-peer network is established wherein thecollection of fees for peer-to-peer data traffic is ensured. In the caseof a client terminal 74 a obtaining data file sections 92 a-92 d frommultiple terminals 74 b-74 d, each terminal 74 a-74 d may generateaccounting data 90.

If the accounting data 90 is transmitted to the tracker module 86, thetracker module forwards the data 90 to the server terminal 72, as atStep 214. The server terminal 72 uses the accounting data 90 to generatebilling data 120 a-120 c. By “billing data,” it is meantinformation/data relating to monetary or similar charges (e.g., creditsor debits) applied against a user or user account. Thus, the billingdata 120 a-120 c may be based on the data transfer rates 114 and/orvolumes 116, and may include, for example, monetary charges to oragainst the account(s) identified in, or determinable from, theaccounting data 90. For example, if billing rates are based on datavolume 116, then an account 80 a may be charged a dollar amount asfollows:

$charge=(data volume)×($/unit data)

This information is stored as the billing data 120 a-120 c in the users'respective accounts 80 a-80 c, with funds being obtained by the system70 in a standard manner according to the user agreement and accounttype, e.g., a direct banking account debit, a credit card charge, or thelike. Funds collected by the system 70 may be used to pay for copyrightlicensing fees, and to pay the network service provider for networkbandwidth.

As noted, each time a peer terminal obtains a particular data file ordata file section, the network address or other location of thatterminal is tracked by the tracker module 86 and/or server terminal 72in association with the data file or data file section. In other words,the tracker module and/or server stores data (e.g., in a database orother storage) associating the address/location of the peer terminalwith the data file (or particular pieces/sections of the data file), asan indication that the peer terminal has the data file available forpeer-to-peer transfer. When another peer terminal later requests thedata file or file section, the database or other storage is searched orotherwise accessed, in relation to the data file, to compile a relevantpeer list 108 for the data file. Inclusion in the peer list may dependon whether the terminal is in communication with the network, and assuch the tracker module and/or server terminal may perform a test forthis condition. Alternatively, a client terminal can select analternative peer terminal on the peer list if one is found to beunavailable for file transfer.

From the perspective of a client terminal 74 a and/or client module 104,for the case of transferring a complete file 78, operation of anembodiment of the system 70 is summarized in FIG. 6A. At Step 220, theclient terminal receives the location of a selected data file 78 fromthe tracker module/application 86 or the server terminal 72. Thelocation may be the network address or other location of the peerterminal 74 b on which the data file is stored, or it may be an addressor other location of the data file itself, e.g., a sub-address orlocation on the peer terminal 74 b. At Step 222, the client terminal 74a obtains the data file 78 from the peer terminal 74 b over the network10. At Step 224, the client terminal 74 a transmits accounting data 90to the tracker module/application 86 and/or to the server terminal 72.As noted, the accounting data 90 relates to the transfer of the datafile from the peer terminal to the client terminal over the network,e.g., data transfer rates and/or data transfer volume. Typically, theaccounting data will be automatically securely generated and transmittedduring or subsequent to when the data file is obtained. In other words,upon obtaining the data file, the client module automatically (e.g.,without user input) and securely (e.g., without the possibility of userintervention) generates the accounting data and automatically andsecurely transmits it (e.g., secure transmission such as encryption) tothe tracker module or server.

For the case of multiple data file sections 92 a-92 d, the clientterminal 74 a receives the locations of the sections 92 a-92 d of aselected data file 78 from the tracker module/application 86 or theserver terminal 72. For example, the locations may be the networkaddresses or other locations of the peer terminals 74 b-74 d on whichthe data file sections 92 a-92 d are stored. The client terminal 74 aobtains the data file sections 92 a-92 d from the peer terminals 74 b-74d over the network 10. The terminals 74 a-74 d transmit accounting data90 to the tracker module/application 86 and/or to the server terminal72.

From the perspective of the tracker module 86 or server terminal 72,operation of an embodiment of the system 70 is summarized in FIG. 6B. AtStep 226, the server and/or tracker module transmits the network addressor other location of a selected data file 78 to a client terminal 74 a,upon request from the client terminal 74 a. The data file 78 is storedon a peer terminal 74 b. Later, at Step 228, the server terminal and/ortracker module receives accounting data 90 from either or both theclient terminal 74 a and the peer terminal 74 b. The accounting data 90relates to the transfer of the data file from the peer terminal to theclient terminal over the network, e.g., data transfer rates and/or datatransfer volume. In the case of data file sections 92 a-92 d, the serverand/or tracker module transmits the network addresses or other locationsof the data file sections 92 a-92 d to a client terminal 74 a, uponrequest from the client terminal 74 a. The data file sections 92 a-92 dare stored on peer terminals 74 b-74 d. Typically, the server terminaland/or tracker module will receive accounting data 90 from all theterminals 74 a-74 d.

The system 70 may be provided with encryption and/or anti-copyingmeasures whereby the data files 78 or file sections can only betransferred to others through the system 70. For example, the systemcould be configured such that each time a data file is copied ortransferred, the file either automatically self-encrypts or isautomatically encrypted by the client module, with the client modules104 having functionality 122 for decrypting the file for use. Thus,users would be prevented from transferring the data files 78 in auseable form outside the system 70, which might result in copyrightinfringement, violation of licensing contracts, or the like.

As should be appreciated, the data files 78 may originate with theserver terminal 72. For example, music or other data files 78 could becleared for copyright licensing purposes, and then stored on the serverterminal 72. The first time a file (or file section) stored on theserver was downloaded, the file or file section would be transferredfrom the server terminal to the downloading client terminal, in a mannersimilar to as described above, e.g., the server terminal would function,in effect, like a peer terminal. Alternatively, instead of files beingstored on and transferred from the server terminal 72 itself, therecould be a dedicated “peer” server 124, configured to function in amanner like a true peer terminal 74 b, 74 c, for storing and downloadingdata files 78 in the first instance. The network address or otherlocation of the peer server 124 would be provided in a peer list or thelike, as described above. Subsequent to a data file 78 or data filesection being downloaded from the server 72 or peer server 124, theserver 72 or peer server 124 would be excluded from subsequent peerlists, with the data file 78 instead being transferred peer-to-peer.Alternatively, the server and/or peer server could act as a “backup” incase no peer terminals were available for downloading a particular datafile or file section.

Although the tracker modules 86 facilitate an efficient division ofcommunication functions in the system 70, the system 70 could instead beconfigured for operation solely with the server terminal or terminals72, without departing from the spirit and scope of the presentinvention. Thus, the server terminal(s) could be configured for carryingout the functions of the tracker modules described above, with theclient/peer terminals communicating directly with the server terminal(s)in all instances except for peer-to-peer file transfer. Additionally,the functions of the tracker module(s) 86 and server terminal 72 couldbe apportioned differently from the manner described above. Accordingly,the tracker module 86 and server terminal 72 may be collectively orsingularly characterized as a “server application” 126, by which it ismeant a network-interfaced hardware and/or software unit (or units)configured for carrying out one or more of the server and/or trackermodule functions described above.

In the system 70, the IMS network 10 carries out one or moresignaling/communication functions for interconnecting the clientterminals 74 a-74 d and server application 126, according to thecommunication protocols in place on the network 10. Additionally, thesystem 70 may be configured for the IMS network 10 to carry out one ormore of the server application functions described above, e.g., thefunctions of the tracker module and/or server terminal. For example, theIMS network may be configured (i) to manage client terminal requests foraccessing the website interface 100 and downloading a file 78, (ii) toconnect client terminals with the server application 126, (iii) toconnect client terminals with peer terminals for file transfer, and (iv)to manage the connection between the client terminals and serverapplication 126. In particular, after a file 78 is selected for downloadat a client terminal 74 a through a secure account, the IMS processesthe request from the client terminal 74 a to download the file, contactsthe server application 126, obtains the information file 82 d, andtransmits it to the client terminal 74 a, along with the address 84 ofthe server application 126 for downloading purposes, e.g., thedownloading socket information of the server application 126. The clientterminal 74 a connects to the server application 126, commences filedownloading, and sends a request to the IMS to contact peer terminals 74b-74 d having the data file 78 (or portions 92 a-92 d thereof). The IMSlocates the peer terminals 74 b-74 d, and establishes connectionsbetween the client terminal 74 a and peer terminals 74 b-74 d for theclient terminal 74 a to obtain the data file portions. The IMS may alsosend messages to the server application 126 for updating purposes.

As should be appreciated, although the data file sections 92 a-92 d havebeen characterized as portions or sections of a data file 78, each datafile portion is itself a data file, e.g., grouping of data. As such, thedata file portions may be characterized as data files, with the datafile 78 being a larger, composite data file made up of the plurality ofsmaller data files or data file sections.

As should be appreciated, the system 70 utilizes a peer-to-peer networkmodel for file download, and an account-based client-server networkmodel for managing file downloads and gathering billing information.Thus, the system is efficient in terms of file transfer whilemaintaining accuracy, security, and accountability in terms of networkbandwidth usage and billing.

Since certain changes may be made in the above-described peer-to-peerfile download system for IMS network, without departing from the spiritand scope of the invention herein involved, it is intended that all ofthe subject matter of the above description or shown in the accompanyingdrawings shall be interpreted merely as examples illustrating theinventive concept herein and shall not be construed as limiting theinvention.

1. A method of transferring data over an IMS network, said methodcomprising the steps of: transmitting, to a first client terminal, anetwork location associated with at least a portion of a data filestored on a second client terminal, for transfer of the data file orportion thereof from the second client terminal to the first clientterminal, wherein the location is transmitted from a server applicationinterfaced with the IMS network for management of peer-to-peer filetransfer.
 2. The method of claim 1 wherein: the data file is distributedas a plurality of data file portions among a plurality of second clientterminals; and the method further comprises transmitting networklocations associated with said data file portions to the first clientterminal, for transfer of the data file portions from the second clientterminals to the first client terminal over the IMS network.
 3. Themethod of claim 2 further comprising: receiving accounting data from thefirst client terminal and the second client terminals over at least onesecure connection, said accounting data relating to the transfer of saiddata file portions from the second client terminals to the first clientterminal.
 4. The method of claim 3 further comprising: generatingbilling data based on said accounting data, wherein the accounting dataincludes at least one of a rate at which each of said data file portionswas transferred over the IMS network and an amount of data in each ofsaid data file sections.
 5. The method of claim 2 further comprising:transmitting, from a server terminal, a network location of a trackermodule to the first client terminal, wherein the tracker module isconfigured to transmit the network locations of the plurality of datafile portions to the first client terminal upon the first clientterminal accessing the tracker module at the network location thereof.6. The method of claim 5 further comprising: tracking the locations ofclient terminals which have received data file portions from otherclient terminals, for providing to client terminals requesting transferof said data file sections, said locations being tracked by the trackermodule.
 7. The method of claim 5 further comprising: transmitting, tothe first client terminal, an information file including (i) informationrelating to said data file and (ii) the network location of said trackermodule, for the first client terminal to obtain the network locations ofthe plurality of data file portions from the tracker module.
 8. Themethod of claim 5 further comprising: receiving accounting data from thefirst client terminal and the second client terminals over at least onesecure connection, said accounting data relating to the transfer of saiddata file portions from the second client terminals to the first clientterminal; and generating billing data based on said accounting data,wherein the accounting data includes at least one of a rate at whicheach of said data file portions was transferred over the IMS network andan amount of data in each of said data file sections.
 9. A method oftransferring data over an IMS network, said method comprising the stepsof: receiving, at a first client terminal, a network location associatedwith at least a portion of a data file stored on a second clientterminal, said location being received from a server applicationinterfaced with the IMS network; and obtaining said data file or portionthereof from the second client terminal over the IMS network, based onsaid location.
 10. The method of claim 9 wherein: the data file isdistributed as a plurality of data file portions among a plurality ofsecond client terminals; and the method further comprises obtaining saiddata file portions from the second client terminals over the IMSnetwork, based on network locations associated with said data fileportions which are received from the server application.
 11. The methodof claim 10 further comprising: transmitting accounting data to saidserver application, wherein the accounting data relates to the transferof the data file portions from the second client terminals to the firstclient terminal over the IMS network.
 12. The method of claim 11 whereinthe accounting data is automatically securely generated and transmittedby said first and second client terminals during or subsequent totransfer of said data file portions from the second client terminals tothe first client terminal.
 13. The method of claim 12 wherein theaccounting data includes at least one of a rate at which each data fileportion was obtained over the network and an amount of data transmittedover the network for obtaining each of said data file portions.
 14. Themethod of claim 12 further comprising: obtaining an information fileassociated with the data file from a server terminal, said informationfile including a location of a tracker module having the locations ofthe data file portions stored thereon; and accessing the tracker moduleat the location of the tracker module, to obtain the locations of thedata file portions from the tracker module.
 15. The method of claim 14further comprising, prior to obtaining said information file: accessinga database on said server terminal from a secure account of the firstclient terminal; and selecting said information file from among aplurality of information files on said server terminal each relating toa different data file available for transfer over the IMS network.
 16. Amethod of transferring data over a network, said method comprising thesteps of: obtaining, at a first client terminal, a plurality of datafile portions from a plurality of second client terminals, said datafile portions being obtained based on a plurality of network locationsreceived from a server application, wherein the first client terminalhas a secure account for communicating with said server application,said secure account requiring user authentication for accessing theaccount to receive said locations from the server application.
 17. Themethod of claim 16 wherein each of said second client terminals has asecure account for communicating with the server application.
 18. Themethod of claim 17 further comprising: automatically securely generatingaccounting data relating to the transfer of the data file portions fromthe second client terminals to the first client terminal over thenetwork; and transmitting the accounting data to the server applicationthrough said secure accounts, said accounting data being generated andtransmitted by said first and second client terminals during orsubsequent to transfer of said data file portions from the second clientterminals to the first client terminal.
 19. The method of claim 18wherein the accounting data includes at least one of a rate at whicheach data file portion was obtained over the network and an amount ofdata transmitted over the network for obtaining each of said data fileportions.
 20. The method of claim 18 further comprising: obtaining aninformation file associated with the data file portions from a serverterminal, said information file including a location of a tracker modulehaving the locations of the data file portions stored thereon; andaccessing the tracker module at the location of the tracker module, toobtain the locations of the data file portions from the tracker module.